﻿/* 
 * Copyright (c) 2011-13 Andrey Bulygin
 * 
 * This file is part of Interceptor.
 * Interceptor is free software: you can redistribute it and/or modify it under the terms of the GNU 
 * Library General Public License as published by the Free Software Foundation, either version 3 of the 
 * License, or (at your option) any later version.
 * 
 * Interceptor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without 
 * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 
 * the GNU Library General Public License for more details. You should have received a copy of the GNU 
 * Library General Public License along with Interceptor. If not, write to the Free Software Foundation, Inc., 59 
 * Temple Place, Suite 330, Boston, MA 02111-1307 USA.
 */

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;

namespace Interceptor
{
	public abstract class Invoker<TDelegate>
	{
		static MethodInfo _methodInfo;
		
		public static void DefineMethodInfo(MethodInfo methodInfo)
		{
			_methodInfo = methodInfo;
		}

		public Invoker() {}

		public TDelegate Invoke { get; protected set; }

		public MethodInfo Method
		{
			get
			{
				return _methodInfo;
			}
		}
	}
}
